package com.wltt.product.ahuthr.service.base;

import java.io.Serializable;
import java.util.List;


/**
 * @ClassName: BaseService
 * @Description: 逻辑服务公共类
 * @Date: 2024-05-17 09:03:14
 * @Author yanggl
 */
public interface BaseService<T, ID extends Serializable> {

    /**
     * 可选插入返回主键
     *
     * @param entity
     * @return
     */
    ID insertSelective(T entity);

    /**
     * 批量插入
     *
     * @param records
     */
    void insertRecords(List<T> records);

    /**
     * 条件查询返回匹配的第一条记录
     *
     * @param entity
     * @return
     */
    T queryLimitOne(T entity);

    /**
     * 条件查询
     *
     * @param entity
     * @return
     */
    List<T> queryByCond(T entity);

    /**
     * 主键查询 可能返回Null
     *
     * @param id
     * @return
     */
    T queryById(ID id);

    /**
     * 主键批量查询 可能返回空列表
     *
     * @param ids
     * @return
     */
    List<T> queryByIds(List<ID> ids);

    /**
     * 主键更新
     *
     * @param entity
     * @return
     */
    boolean updateById(T entity);

    /**
     * 主键删除
     *
     * @param id
     * @return
     */
    boolean deleteById(ID id);

    /**
     * 主键批量删除
     *
     * @param ids
     * @return
     */
    boolean deleteByIds(List<ID> ids);
}